Consensus
Page 547
"The best way to build fault tolerant system is to find some general purpose abstraction with some guarantees and assumptions and let the system operate over those guarantees.
This is the case for transaction on database, that abstract away all the logic for atomicity, isolation and durability.
"A general challenges of distributed system is to all nodes agree upon something; that is consensus"
Distributed consistency models are somewhat similar to the hierarchy of transaction isolation levels
Although they overlap, they have different concerns: Transaction concerns race conditions and concurrency. And Distributed Models are more of coordinating the state of replicas when facing delays or faults
Cap Theorem
CAP Theorem states that out of:
- Consistency
- Partition
- Availability
You can only obtain up to 2 out of 3 of these traits - and on a context of Distributed Models you are left with: Either Consistent or Available when Partitioned
CAP is not something practical, since it never got in to a real theorem level
. It just historically important for the culture shift.
Linearizability is almost as proportional as the uncertainty and unreliability of the network. So its slow, in all occasions.